Robot system assisting work of worker, control method, machine learning apparatus, and machine learning method

ABSTRACT

A robot system assisting a worker to allow the worker to perform a work more smoothly. The robot system includes a robot, a detection device configured to detect motion of a worker when the worker is performing a predetermined work, an end determination section configured to determine whether the work is ended or not on the basis of detection data from the detection device, and a robot controller configured to cause the robot to carry out an article-feed operation or an article-fetch operation when the end determination section determines that the work is ended, the article-feed operation transporting an article for the work to a predetermined position to feed the article to the worker, the article-fetch operation fetching the article used for the work and transporting the article to a predetermined storage location.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The present invention relates to a robot system assisting a work of a worker, a robot control method, a machine learning apparatus, and a machine learning method.

2. Description of the Related Art

Robot systems assisting a work of a worker are known (e.g., JP 2018-058178 A). There has been demand for a robot system assisting a worker to allow the worker to perform a work more smoothly.

SUMMARY OF THE INVENTION

In an aspect of the present disclosure, a robot system configured to assist a work by a worker, includes a robot; a detection device configured to detect a motion of the worker when the worker is performing a predetermined work; an end determination section configured to determine whether or not the work is ended, based on detection data of the detection device; and a robot controller configured to, when the end determination section determines that the work is ended, cause the robot to carry out an article-feed operation to transport an article for the work to a predetermined position in order to feed the article to the worker, or an article-fetch operation to fetch the article which has been used for the work and transport it to a predetermined storage location.

In another aspect of the present disclosure, a method of controlling a robot configured to assist a work by a worker, includes detecting, by a detection device, a motion of the worker when the worker is performing a predetermined work; determining whether or not the work is ended, based on detection data of the detection device; and when determined that work is ended, causing the robot to carry out an article-feed operation to transport an article for the work to a predetermined position in order to feed the article to the worker, or an article-fetch operation to fetch the article which has been used for the work and transport it to a predetermined storage location.

In yet another aspect of the present disclosure, a machine learning apparatus configured to learn a timing of when a work by a worker is ended, includes a learning data acquisition section configured to acquire, as a learning data set, detection data of a detection device configured to detect a motion of the worker, when the worker is performing a predetermined work, and label information indicating a stage of the work or a time needed for the work; and a learning section configured to generate a learning model representing a correlation between the motion and the stage or the time, using the learning data set.

In still another aspect of the present disclosure, a machine learning method of learning a timing of when a work by a worker is ended, includes acquiring, as a learning data set, detection data of a detection device configured to detect a motion of the worker when the worker is performing a predetermined work, and label information indicating a stage of the work or a time needed for the work; and generating a learning model representing a correlation between the motion and the stage or the time, using the learning data.

According to the present disclosure, the robot controller causes the robot to carry out the article-feed operation or the article-fetch operation at the timing of when the work is ended, and thus the work by the worker can be assisted to allow the worker to perform the work smoothly.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a robot system according to an embodiment.

FIG. 2 is a perspective view of the robot system illustrated in FIG. 1.

FIG. 3 is a flow chart illustrating an example of the operation flow of the robot system illustrated in FIG. 1.

FIG. 4 is an enlarged view of a working table illustrated in FIG. 2.

FIG. 5 is a diagram for describing an example of a work performed by a worker.

FIG. 6 illustrates the worker fastening a fastener in a fastening hole illustrated in FIG. 5 by using a tool.

FIG. 7 is a block diagram of a machine learning apparatus according to an embodiment.

FIG. 8 is a diagram schematically illustrating detection data continuously acquired by a detection device.

FIG. 9 is a flowchart illustrating an example of a learning flow carried out by the machine learning apparatus illustrated in FIG. 7.

FIG. 10 schematically illustrates a neuron model.

FIG. 11 schematically illustrates a multi-layer neural network model.

FIG. 12 is a block diagram of a robot system according to another embodiment.

FIG. 13 is a perspective view of a robot system according to still another embodiment.

FIG. 14 is a block diagram of the robot system illustrated in FIG. 11.

DETAILED DESCRIPTION

Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In the various embodiments described below, the same components are denoted by the same reference numeral, and redundant descriptions thereof will be omitted. First, a robot system 10 according to an embodiment will be described with reference to FIGS. 1 and 2. The robot system 10 is configured to carry out a work in cooperation with a worker A, and includes a robot 12, a detection device 14, and a controller 16.

In the present embodiment, the robot 12 is a vertical, articulated robot, and includes a base 18, a turning body 20, a robot arm 22, a wrist 24, and a robot hand 26. The base 18 is fixed on a floor of a work cell. The turning body 20 is provided at the base 18 so as to be rotatable around a vertical axis.

The robot arm 22 includes a lower arm 23 attached to the turning body 20 so as to be rotatable around a horizontal axis, and an upper arm 25 rotatably attached to a distal end of the lower arm 23. The wrist 24 is coupled to a distal end of the upper arm 25, and rotatably supports the robot hand 26. The robot hand 26 includes a plurality of fingers 26 a that can open and close, and grasps or releases an article by the fingers 26 a.

A servomotor (not illustrated) is built in each of the components of the robot 12 (base 18, turning body 20, robot arm 22, wrist 24, and robot hand 26). Under a command from the controller 16, the servomotor rotates each movable component of the robot 12 (the turning body 20, the robot arm 22, and the wrist 24) around a drive shaft so as to operate the robot 12.

A robot coordinate system C_(R) is set for the robot 12. The robot coordinate system C_(R) is for automatically controlling the movable components of the robot 12 (the turning body 20, the robot arm 22, and the wrist 24) in a three-dimensional space. In the present embodiment, the robot coordinate system C_(R) is set such that an origin thereof is disposed at the center of the base 18, a z-axis thereof is disposed parallel to the vertical direction, and the turning body 20 is rotated around the z-axis.

The controller 16 generates a command for each servomotor built in the robot 12 on the basis of the robot coordinate system C_(R), and causes each servomotor to operate the movable components of the robot 12 so as to arrange the robot hand 26 at any position and orientation in the robot coordinate system C_(R).

The detection device 14 detects a motion of the worker A when the worker A is performing a predetermined work. In the present embodiment, the detection device 14 includes an image sensor, an optical system such as a focus lens, and an image processor (e.g., a GPU). The detection device 14 captures an image of the worker A performing the work along a predetermined visual line direction VD, and detects the motion of the worker A on the basis of the captured image (so called, an optical motion capture). The work performed by the worker will be described below.

The controller 16 controls the robot 12 and the detection device 14. The controller 16 is a computer including a processor (CPU, GPU, etc.), a memory (ROM, RAM, etc.), an input device (keyboard, mouse, touch sensor, etc.), and a display (liquid crystal display, organic EL display, etc.). The processor of the controller 16 performs arithmetic processing for executing various functions described below.

Next, the operation of the robot system 10 will be described with reference to FIG. 3. A flow illustrated in FIG. 3 is started when the controller 16 receives a work-start command from an operator, a host controller, or a computer program. In step S1, the controller 16 acquires information on the work to be performed by the worker A.

In the present embodiment, the worker A performs a total of n_(MAX) (n_(MAX) is a positive integer) types of works in order of a first work, a second work, . . . an n-th work, . . . and an n_(MAX)-th work, wherein the worker A uses an n-th tool T_(n) to perform the n-th work (n=1 to n_(MAX)). Note that the n-th tools T_(n) may be different from each other or that at least two tools (the (n=1)-th tool T_(n−1) and the n-th tool T_(n)) may be the same.

In this step S1, the controller 16 acquires the work information from the operator, the host controller, or the computer program. The work information includes information identifying the type and order of the n-th work and the type of the n-th tool (e.g., identification numbers, etc.). From the work information, the controller 16 can recognize the order in which the work is to be performed, and the tool T_(n) to be fed to the worker A.

Note that the worker A may operate the input device of the controller 16 to input the work information. Alternatively, the worker A may input the work information, using a voice recognition technique. In this case, the controller 16 is further provided with a microphone for inputting sound, and a computer program for the voice recognition technique is preliminary installed in the controller 16.

In step S2, the controller 16 sets a number “n” identifying the n-th work (i.e., the n-th tool T_(n)) to “1.” In step S3, the controller 16 causes the robot 12 to carry out an article-feed operation. In the present embodiment, as illustrated in FIG. 4, a placing table C is installed at a predetermined position within the work cell. A first jig D₁ and a second jig D₂ are provided on the placing table C.

A tool T to be used by the worker A for the next work is set to the first jig D₁ by the robot 12. On the other hand, the worker A manually sets the tool T, which has been used for the work, to the second jig D₂, after performing the work. In addition, a storage stand E on which the tools T are stored is installed at a predetermined position within the work cell. The n-th tool T_(n) to be used for the n-th work is stored stationary at a predetermined position on the storage stand E. Position data (coordinate data) in the robot coordinate system C_(R) of the first jig D₁, the second jig D₂, and the n-th tools T_(n) on the storage stand E are pre-stored in the memory of the controller 16.

In this step S3, the controller 16 causes the robot 12 to carry out the article-feed operation on the basis of the position data in the robot coordinate system C_(R) of the first tool Tand the first jig D₁, and the robot 12 grasps the first tool T₁ stored on the storage stand E by its robot hand 26, sets the first tool T₁ to the first jig D₁, in accordance with the command from the controller 16.

In step S4, the detection device 14 starts to detect the motion of the worker A. Specifically, in response to the command from the controller, the detection device 14 continuously captures an image of the worker A (in other words, captures a moving image), and detects the motion of the worker A on the basis of the captured image. In this way, the detection device 14 transmits detection data DD indicating the motion of the worker A (e.g., image data continuously indicating the motion of the worker A in time-series) to the controller 16.

In step S5, the controller 16 determines whether or not the n-th work is ended, based on the detection data DD of the detection device 14. A method of determining a timing of when the n-th work is ended will be described below with reference to FIGS. 5 and 6. As an example, the n-th work may be defined as a work in which the worker A fastens a fastener G (such as a bolt) in each of five fastening holes F₁ to F₅ illustrated in FIG. 5, using the n-th tool T_(n) (FIG. 6), in order of fastening holes F₁→F₂→F₃→F₄→F₅.

In this case, the worker A first takes the n-th tool T_(n) set in the first jig D₁ with his/her hand H, and performs the n-th work to sequentially fasten the fasteners G in the fastening holes F₁ to F₅ by the n-th tool T_(n). After the n-th work has been ended (that is, the fastener G has been fastened to the last fastening hole F₅), the worker A sets the used n-th tool T_(n) to the second jig D₂.

The controller 16 analyzes the detection data DD acquired from the detection device 14, and determines whether or not the n-th work, which includes a series of motions to sequentially fasten the fasteners G to the fastening holes F₁ to F₅, is ended. As an example, the controller 16 continuously calculates, from the acquired detection data DD, a distance I (FIG. 6) between a portion of the body of the worker A (in this case, the hand H) and the fastening hole F₅ which is the last working location, and monitors whether or not the distance I is equal to or smaller than a predetermined threshold I_(th) (I≤I_(th)).

When detecting that I≤I_(th) is satisfied, the controller 16 determines that the n-th work is ended. In this case, the position data of the fastening holes F₅ in the robot coordinate system C_(R) is pre-stored in the memory of the controller 16. The controller 16 can calculate the distance I from the position data of the fastening holes F₅ in the robot coordinate system C_(R) and the detection data DD of the detection device 14.

Alternatively, the controller 16 may determine that the n-th work is ended when a predetermined time (for example, 5 seconds) has elapsed from a time point when it detects that the distance I becomes equal to or smaller than the predetermined threshold I_(th). Alternatively, the controller 16 may determine that the n-th work is ended when the distance I exceeds the threshold I_(th) (I>I_(th)) again after the distance I has become equal to or smaller than the predetermined threshold I_(th).

As another example, the controller 16 pre-stores in the memory a reference motion pattern of the motion in which the worker A fastens the fastener G in the fastening hole F₅ which is the last working location. This reference motion pattern can be generated on the basis of the detection data DD of the motion of the worker A (or another worker) detected by the detection device 14 when the worker A (or another worker) is performing a reference motion to fasten the fastener G to the last fastening hole F₅.

The controller 16 monitors whether or not the notion of the worker A indicated by the detection data DD acquired after the start of step S4 matches the reference motion pattern, and determines that the n-th work is ended when the motion of the worker A matches the reference motion pattern. Note that the controller 16 may determine that the n-th work is ended when a predetermined time has elapsed since it determines that the motion of the worker A matches the reference motion pattern.

By the above-described methods, the controller 16 can determine the timing of when the n-th work is ended. When the controller 16 determines that the n-th work is ended (i.e., determines YES), it proceeds to step S6. On the other hand, when the controller 16 determines that the n-th work is not ended (i.e., determines NO), it loops step S5. Thus, in the present embodiment, the controller 16 functions as an end determination section 30 (FIG. 1) configured to determine whether or not the n-th work is ended on the basis of the detection data DD.

In step S6, the controller 16 increments a number “n” identifying the n-th work (or the n-th tool) by “1” (n=n+1). In step S7, the controller 16 determines whether or not the number “n” identifying the n-th work exceeds the maximum number n_(MAX) of works (n>n_(MAX)). When the controller 16 determines that n>n_(MAX) is satisfied (i.e., determines YES), it proceeds to step S10. On the other hand, when the controller 64 determines that n<n_(MAX) is satisfied (i.e., determines NO), it proceeds to step S8.

In step S8, the controller 16 causes the robot 12 to carry out the article-feed operation. Specifically, based on the position data in the robot coordinate system C_(R) of the n-th tool T_(n) to be used for the next work, the controller 16 causes the robot 12 to carry out the article-feed operation in which the robot 12 grasps the n-th tool T_(n) stored in the storage stand E with the robot hand 26, and sets the grasped n-th tool T_(n) to the first jig D₁.

Thus, in the present embodiment, the controller 16 functions as a robot controller 28 (FIG. 1) configured to cause the robot 12 to carry out the article-feed operation to transport the n-th tool T_(n) for the n-th work to a predetermined position (the first jig D₁) in order to feed the n-th tool T_(n) to the worker A.

In step S9, the controller 16 functions as the robot controller 28 and causes the robot 12 to carry out an article-fetch operation. Specifically, the controller 16 controls the robot 12 on the basis of the position data of the second jig D₂ in the robot coordinate system C_(R), such that the robot 12 grasps the (n−1)-th tool T_(n−1), which has been used for the most-recently performed (n−1)-th work and which is set on the second jig D₂, by the robot hand 26.

Then, the controller 16 controls the robot 12 on the basis of the position data in the robot coordinate system C_(R) of the (n−1)-th tool T_(n−1) to be set on the storage stand E, such that the robot 12 returns the (n−1)-th tool T_(n−1) grasped by the robot hand 26 to a predetermined position on the storage stand E. For example, if the number “n” is set to “4” (n=4) at the time of start of this step S9, the controller 16 causes the robot 12 to fetch the third tool T₃, which has been used for the third work, from the second jig D₂, and transports the third tool T₃ to a predetermined position on the storage stand E.

In this way, the controller 16 causes the robot 12 to carry out the article-fetch operation to fetch the (n−1)-th tool T_(n−1), which has been used for the most-recently performed (n−1)-th work, and transported it to the predetermined storage location (storage stand E). Note that, before executing this step S9, the controller 16 may determine whether the (n−1)-th tool T_(n−1) is set on the second jig D₂ based on an image captured by the detection device 14 (or another detection device), and start step S9 when the (n−1)-th tool T_(n−1) is set on the second jig D₂.

Alternatively, an article detection sensor (for example, a proximity switch), which is configured to detect that the (n−1)-th tool T_(n−1) is placed on the second jig D₂, may be provided at the second jig D₂, and the controller 16 may determine whether the (n−1)-th tool T_(n−1)is set on the second jig D₂ on the basis of an output signal from the article detection sensor. After step S9, the controller 16 returns to step S5 and carries out a loop of steps S5 to S9 until it determines YES in step S7.

When it is determined YES in step S7, in step S10, the controller 16 functions as the robot controller 28 to cause the robot 12 to carry out the article-fetch operation. Specifically, the controller 16 controls the robot 12 on the basis of the position data of the second jig D₂ in the robot coordinate system C_(R), such that the robot 12 grasps the n_(MAX)-th tool T_(nMAX), which has been used for the n_(MAX)-th work and which is set on the second jig D₂, by the robot hand 26.

Then, the controller 16 controls the robot 12 on the basis of the position data in the robot coordinate system C_(R) of the n_(MAX)-th tool T_(nMAX) to be set on the storage stand E, such that the robot 12 returns the n_(MAX)-th tool T_(nMAX) grasped by the robot hand 26 to a predetermined position on the storage stand E.

As described above, in the present embodiment, when the controller 16 determines that the n-th work is ended, the controller 16 causes the robot 12 to carry out the article-feed operation (step S8). According to this configuration, when the worker A performs the (n+1)-th work next to the n-th work, the (n+1)-th tool T_(n+1) for the (n+1)-th work is automatically set to the first jig D₁ by the robot 12. Due to this, it is possible to facilitate the worker A to smoothly perform the n-th work.

Additionally, in the present embodiment, when the controller determines that the n-th work is ended, the controller 16 causes the robot 12 to carry out the article-fetch operation (steps S9 and S10). According to this configuration, the used n-th tool T_(n) can be automatically fetched and returned by the robot 12 when the worker A completes the n-th work. Due to this, it is possible to facilitate the worker A to smoothly perform the work.

Note that, in step S5, the controller 16 may determine whether or not the n-th work is ended, on the basis of a learning model LM representing a correlation between the motion of the worker A performing the n-th work and a stage of the n-th work or a time t needed for the n-th work. With reference to FIG. 7, a machine learning apparatus 50 learning the learning model LM will be described below.

The machine learning apparatus 50 is comprised of a computer including e.g. a processor (CPU, GPU, etc.), a memory (ROM, RAM, etc.), an input device (keyboard, mouse, touch sensor, etc.), and a display (liquid crystal display, organic EL display, etc.), or of software such as a learning algorithm carried out by the computer.

The machine learning apparatus 50 learns the timing of when the worker A ends the n-th work. The machine learning apparatus 50 includes a learning data acquisition section 52 and a learning section 54. As an embodiment of the function of the machine learning apparatus 50, the learning data acquisition section 52 acquires, as a learning data set DS₁, the above-described detection data DD of the detection device 14 and label information LI indicating a stage of the n-th work (initial stage, midterm stage, final stage, etc.).

More specifically, the detection device 14 images the worker A along its visual line direction VD when the worker A is performing the n-th work, and detects motion of the worker A on the basis of the captured image.

The detection device 14 supplies to the learning data acquisition section 52 the detection data DD indicating the motion of the worker A (for example, image data continuously indicating the motion of the worker A in time series).

FIG. 8 schematically illustrates detection data DD_(m) continuously acquired by the detection device 14. The horizontal axis in FIG. 8 indicates the time t. Note that FIG. 8 illustrates 300 pieces of detection data DD_(m) (m=1 to 300) detected by the detection device 14 from the start to the end of the n-th work by the worker A.

The label information LI includes e.g. initial-stage label information LI₁ indicating that the n-th work is in an “initial stage”, midterm-stage label information LI₂ indicating that the n-th work is in a “midterm stage”, and final-stage label information LI₃ indicating that the n-th work is in a “final stage”. Assume that a collection of detection data DD₁ to DD₉₉ illustrated in FIG. 8 indicates the motion of the worker A fastening first two fastening holes F (e.g., fastening holes F₁ and F₂) of the fastening holes F₁ to F₅ in FIG. 5.

Further, assume that a collection of detection data DD₁₀₀ to DD₁₉₉ indicates the motion of the worker A fastening next two fastening holes F (e.g., fastening holes F₃ and F₄) of the fastening holes F₁ to F₅ in FIG. 5. Further, assume that a collection of detection data DD₂₀₀ to DD₃₀₀ indicates the motion of the worker A fastening the last fastening hole F (e.g., fastening hole F₅) of the fastening holes F₁ to F₅ in FIG. 5.

In this case, the operator may assign the initial-stage label information LI₁ to the detection data DD₁ to DD₉₉, assign the midterm-stage label information LI₂ to the detection data DD₁₀₀ to DD₁₉₉, and assign the final-stage label information LI₃ to the detection data DD₂₀₀ to DD₃₀₀. When the operator assigns the label information LI, the display of the machine learning apparatus 50 displays detection data (image data) DD_(m).

Then, while viewing the image of the detection data DD_(m) displayed on the display, the operator operates the input device of the machine learning apparatus 50 so as to optionally give to the detection data DD_(m) any of the initial-stage label information LI₁, the midterm-stage label information LI₂, and the final-stage label information LI₃, which indicate the progress of the n-th work.

In this way, the operator optionally gives the label information LI to the detection data DD_(m) in accordance with the motion of the worker A indicated by the detection data DD_(m). The learning data acquisition section 52 acquires, as the learning data set DS₁, the detection data DD_(m) acquired from the detection device 14, and the label information LI input by the operator.

Note that, in the example illustrated in FIG. 8, for ease of understanding, a case has been described in which the detection device 14 detects a total of 300 pieces of detection data DD₁ to DD₃₀₀ during the n-th work. However, the detection device 14 may detect any number of pieces of detection data DD_(m) during the n-th work. The operator may optionally decide which type of label information LI₁, LI₂ or LI₃ is to be given to the collection of any number of pieces of detection data DD_(m), in accordance with the detected detection data DD_(m).

Additionally, the label information LI is not limited to the above-described initial-stage label information LI₁, the midterm-stage label information LI₂, and the final-stage label information LI₃. For example, as the final-stage label information LI₃, a plurality of pieces of label information may be set in chronological order, such as “final stage 1”, “final stage 2”, and “final stage 3”. Similarly, a plurality of pieces of label information may be set as the initial-stage label information LI₁ or the midterm-stage label information LI₂. Additionally, only the final-stage label information LI₃ may be given to the detection data DD_(m).

The learning section 54 generates a learning model LM₁ (function) representing the correlation between the motion of the worker A performing the n-th work and the stage of the n-th work (initial stage, midterm stage, final stage), using the learning data set DS₁. For example, the learning section 54 carries out supervised learning to generate the learning model LM₁. In this case, the worker A repeatedly attempts the n-th work, and the learning data acquisition section 52 repeatedly acquires the learning data set DS₁ as supervised data each time the worker A performs the n-th work.

The learning section 54 learns the learning model LM₁ by identifying a feature that implies the correlation between the detection data DD_(m) and the label information LI indicating the stage of n-th work (initial-stage label information LI₁, midterm-stage label information LI₂, and final-stage label information LI₃) acquired as the supervised data. As the supervised learning, an algorithm such as a Support Vector Machine (SVM) or a Gaussian Mixture Model (GMM) can be used, for example.

A flow of a learning cycle performed by the machine learning apparatus 50 will be described below with reference to FIG. 9. In step S11, the worker A performs the n-th work, and the detection device 14 detects the motion of the worker A during the n-th work. In step S12, the learning data acquisition section 52 acquires the learning data set DS₁ of the detection data DD_(m) and the label information LI, and stores the detection data DD_(m) and the label information LI in the memory of the machine learning apparatus 50 in association with each other.

In step S13, the learning section 54 generates (or updates) the learning model LM₁ representing the correlation between the motion of the worker A performing the n-th work and the stage of the n-th work, using the learning data set DS₁ acquired in step S12. The flow then returns to step S11.

By carrying out such a learning cycle, the learning of the learning model LM₁ is advanced, whereby the learning model LM₁ is guided to an optimal solution. According to the present embodiment, it is possible to automatically and accurately obtain the learning model LM₁ which quantitatively represents the correlation between the motion of the worker A performing the n-th work and the stage of the n-th work.

Next, another embodiment of the function of the machine learning apparatus 50 will be described. In the present embodiment, the learning data acquisition section 52 acquires, as a learning data set DS₂, the above-described detection data DD_(m) and the time t needed for the n-th work. For example, the learning data acquisition section 52 acquires, as the learning data set DS₂, the detection data DD₁ to DD_(m_p) indicating the motion of the worker A fastening first “p” fastening holes F (p is an integer of 4 or smaller) of the fastening holes F₁ to F₅ in FIG. 5, and the time t from a time point when the worker A completes fastening of the p-th fastening hole F to a time point when the n-th work is ended.

Specifically, the learning data acquisition section 52 acquires, as the learning data set DS₂, the detection data DD₁ to DD₉₉ indicating the motion of the worker A fastening the first two fastening holes F (e.g., fastening holes F₁ and F₂), and the time t from a time point when the worker A completes fastening of the second fastening hole F (e.g., fastening hole F₂) (i.e., a time point when the detection data DD₉₉ is detected) to a time point when the n-th work is ended (i.e., a time point when the detection data DD₃₀₀ is detected).

The learning section 54 generates a learning model LM₂ (function) representing the correlation between the motion of the worker A performing the n-th work and the time t needed for the n-th work (e.g., the time t from a time point when fastening of the p-th fastening hole F is completed to a time point when the n-th work is ended), using the learning data set DS₂ of the detection data DD_(m) and the time t.

A flow of a learning cycle of the learning model LM₂ will be described below with reference to FIG. 9. The learning flow of the learning model LM₂ differs from the learning flow of the above-described learning model LM₁ in steps S12 and S13. Specifically, in step S12, the learning data acquisition section 52 acquires the learning data set DS₂ of the detection data DD_(m) and the time t, and stores them in the memory of the machine learning apparatus 50 in association with each other.

In step S13, the learning section 54 generates the learning model LM₂ representing the correlation between the motion of the worker A performing the n-th work and the time t, using the learning data set DS₂ acquired in step S12. For example, the learning section 54 carries out the supervised learning algorithm (SVM, GMM, etc.) to learn the learning model LM₂. The flow then returns to step S11.

By carrying out such a learning cycle, the learning of the learning model LM₂ is advanced, whereby the learning model LM₂ is guided to the optimal solution. According to the present embodiment, it is possible to automatically and accurately obtain the learning model LM₂ which quantitatively represents the correlation between the motion of the worker A performing the n-th work and the time t needed for the n-th work.

Note that the learning algorithm carried out by the learning section 54 is not limited to the supervised learning, but any learning algorithm known as machine learning, such as unsupervised learning, reinforcement learning, or a neural network, can be employed. As an example, FIG. 10 schematically illustrates a neuron model. FIG. 11 schematically illustrates a three-layer neural network model constructed by combining neurons illustrated in FIG. 10. The neural network can be configured by using, for example, a computing device and a storage device that simulate a neuron model.

The neuron illustrated in FIG. 10 outputs a result y in response to a plurality of inputs x (in FIG. 10, inputs x1 to x3 as an example). The inputs x (x1, x2, and x3) are respectively multiplied by weights w (w1, w2, and w3). The relationship between the inputs x and the result y can be represented by Formula 1 given below. Note that all of the inputs x, the result y, and the weights w are vectors. In Formula 1, θ is a bias, and f_(k) is an activation function.

y=f _(k)(Σ_(i=1) ^(n) x _(i) w _(i)−θ)  (1)

In the three-layer neural network illustrated in FIG. 11, the plurality of inputs x (in FIG. 11, the inputs x1 to x3 as an example) are input from the left side, and the result y (in FIG. 11, results y1 to y3 as an example) are output from the right side. In the illustrated example, the inputs x1, x2, and x3 are respectively multiplied by the corresponding weights (collectively represented as W1), and each of the inputs x1, x2, and x3 is input to three neurons N11, N12, and N13.

In FIG. 11, outputs from the neurons N11 to N13 are collectively represented as Z1. Z1 can be regarded as feature vectors obtained by extracting the feature amounts of the input vectors. In the illustrated example, the feature vectors Z1 are respectively multiplied by the corresponding weights (collectively represented as W2), and each of the feature vectors Z1 is input to two neurons N21 and N22. The feature vectors Z1 represent features between the weight W1 and the weight W2.

In FIG. 11, outputs from the neurons N21 to N22 are collectively represented as Z2. Z2 can be regarded as feature vectors obtained by extracting the feature amounts of the feature vectors Z1. In the illustrated example, the feature vector Z2 are respectively multiplied by the corresponding weights (collectively represented as W3), and each of the feature vectors Z2 is input to three neurons N31, N32, and N33.

The feature vectors Z2 represent features between the weight W2 and the weight W3. Lastly, the neurons N31 to N33 respectively output the results y1 to y3. The machine learning machine 50 can learn the learning model LM (LM₁ or LM₂) by using the learning data set DS (DS₁ or DS₂) as input and performing a multilayer structure computation according to the neural network described above.

The configuration of the above-mentioned machine learning apparatus 50 can be described as a machine learning method (or software) carried out by a processor of a computer. The machine learning method includes, by a processor, acquiring, as the learning data set DS₁ or DS₂, the detection data DD_(m) of the detection device 14 detecting the motion of the worker A when the worker A is performing the n-th work, and the label information LI indicating the stage of the n-th work or the time t needed for the n-th work; and generating the learning model LM₁ or LM₂ representing the correlation between the motion of the worker A and the stage of the n-th work or the time t, using the learning data set DS₁ or DS₂.

Now, a robot system 60 according to another embodiment will be described with reference to FIGS. 2 and 12. The robot system 60 includes the robot 12, the detection device 14, and a controller 62. The controller 62 is a computer including a processor 64 (CPU, GPU, etc.), a memory 66 (ROM, RAM, etc.), an input device 68 (keyboard, mouse, touch sensor, etc.), and a display 70 (liquid crystal display, organic EL display, etc.). The processor 64, the memory 66, the input device 68, and the display 70 are communicatively connected together via a bus 72.

In the present embodiment, the machine learning apparatus 50 is installed in the controller 62 as hardware or software, and the processor 64 carries out various arithmetic processing to carry out the function of the machine learning apparatus 50, while communicating with the memory 66, the input device 68, and the display 70. Thus, in the present embodiment, the processor 64 functions as the learning data acquisition section 52 and the learning section 54. The memory 66 pre-stores the learning model LM (LM₁ or LM₂) learned by the machine learning apparatus 50.

Next, the operation of the robot system 60 will be described with reference to FIG. 3. The processor 64 functions as the above-described robot controller 28 and the end determination section 30, and carries out the flow illustrated in FIG. 3 while communicating with the memory 66, the input device 68, and the display 70. The operation flow of the robot system 60 differs from that of the above-described robot system 10 in the following processes.

Specifically, in step S4, the detection device 14 starts to detect the motion of the worker A. At this time, the detection device 14 continuously captures an image (moving image) of the worker A to detect the motion of the worker A, under the same conditions as those in the above-described step S11 carried out in the learning stage of the learning model LM. Specifically, the detection device 14 images the worker A under the same imaging conditions (shutter speed, imaging speed, etc.) as those in above-described step S11 along the same visual line direction VD as that in step S11. The detection device 14 sequentially transmits continuously acquired detection data DD_(m)′ to the processor 64.

In step S5, the processor 64 determines whether or not the n-th work is ended on the basis of the detection data DD_(m)′ of the detection device 14 and the learning model LM. If the memory 66 stores the learning model LM₁, the processor 64 inputs to the learning model LM₁ the continuous detection data DD_(m)′ acquired from the detection device 14 after the start of step S4.

In response, the learning model LM₁ estimates and outputs the label information LI (i.e., the initial-stage label information LI₁, the midterm-stage label information LI₂, or the final-stage label information LI₃) having a correlation with the input detection data DD_(m)′. As an example, in this step S5, the processor 64 determines YES when it detects that the learning model LM₁ outputs the final-stage label information LI₃. As another example, the processor 64 may determine YES when a predetermined time elapses from a time point when it detects that the learning model LM outputs the final-stage label information LI₃.

On the other hand, if the memory 66 stores the learning model LM₂, in step S5, the processor 64 inputs to the learning model LM₂ the continuous detection data DD_(m)′ acquired from the detection device 14 after the start of step S4. For example, when the detection data DD₁′ to DD_(m_p)′ indicating the motion of the worker A performing fastening of the first p fastening holes F is input to the learning model LM₂, the learning model LM₂ estimates and outputs the time t from a time point when fastening of the p-th fastening hole F is completed to a time point when the n-th work is ended.

By the output time t, the processor 64 can recognize the time when the n-th work is ended, and determine the timing of when the n-th work is ended. For example, the processor 64 clocks an elapsed time τ from a time point when the processor 64 acquires the detection data DD_(m_p)′ indicating the motion of the worker A performing the fastening of the p-th fastening hole F, and determines YES when the elapsed time τ reaches the time t output by the learning model LM₂ (or a time before the time t by a predetermined time).

In this way, the processor 64 functions as the end determination section 30 to determine whether or not the n-th work is ended on the basis of the detection data DD_(m)′ and the learning model LM. According to the present embodiment, the processor 64 can more-accurately determine the timing of when the n-th work is ended, by employing the learning model LM.

Note that, in the above-described embodiments, the robot systems 10 and 60 assist the work of one worker A. However, the robot system 10 or 60 may be configured to assist the works of a plurality of workers A. Such an embodiment is illustrated in FIGS. 13 and 14.

A robot system 80 illustrated in FIGS. 13 and 14 is configured to assist works of three workers A₁, A₂ and A₃. Specifically, the robot system 80 includes the robot 12, detection devices 14A, 14B and 14C, and the controller 62. The detection devices 14A, 14B and 14C each have the same configuration as that of the above-described detection device 14. The detection device 14A detects the motion of the worker A₁, the detection device 14B detects the motion of the worker A₂, and the detection device 14C detects the motion of the worker A₃.

In addition, a placing table C₁ for the worker A₁, a placing table C₂ for the worker A₂, and a placing table C₃ for the worker A₃ are installed at respective predetermined positions within the work cell. The first jig D₁ and the second jig D₂ are provided at each of the placing tables C₁, C₂, and C₃.

The processor 64 of the controller 62 of the robot system 80 carries out the flow illustrated in FIG. 3 in parallel for each of the workers A₁, A₂ and A₃ in order to feed the articles (tools T) for the works to the workers A₁, A₂ and A₃ (i.e., the article-feed operation), and to fetch the articles used by the workers A₁, A₂ and A₃ for the works (article-fetch operation).

Note that the learning model LM (LM₁, LM₂) stored in the memory 66 of the controller 62 of the robot system 80 includes a learning model LM_(_A) (LM_(1_A), LM_(2_A)) learned by using the detection data obtained by the detection device 14A which detects the motion of the worker A₁, a learning model LM_(_B) (LM_(1_B), LM_(2_B)) learned by using the detection data obtained by the detection device 14B which detects the motion of the worker A₂, and a learning model LM_(_C) (LM_(1_C), LM_(2_C)) learned by using the detection data obtained by the detection device 14C which detects the motion of the worker A₂.

Here, the type and order of the work to be performed may vary among the workers A₁, A₂, and A₃. In this case, when the flow illustrated in FIG. 3 is carried out in parallel, for each of the workers A1, A2, and A3, the work information acquired in step S1 will differ from each other for the workers A1, A2, and A3.

Additionally, when the flow illustrated in FIG. 3 is carried out in parallel for each of the workers A₁, A₂, and A₃, the timing of when the works by at least two workers A₁, A₂ and A₃ is ended, which are determined by the processor 64 in step S5, may be temporally close to each other. In this case, the processor 64 may determine the order in which the at least two workers A₁, A₂ and A₃ end their works, and may carry out step S8 for these workers A₁, A₂, A₃ in accordance with the order.

Below, a case will be described in which the timing of end of the works by the workers A₁ and A₂ are close to each other. If the above-described learning model LM₂ is employed, in above step S5, the processor 64 can estimate the times when the workers A₁ and A₂ end their works, as stated above. Accordingly, the processor 64 can determine whether the times at which the workers A₁ and A₂ end their works are close to each other, and can also determine the order in which the works by the workers A₁ and A₂ are ended.

For example, if the processor 64 determines that the worker A₁ ends his/her work before the worker A₂, the processor 64 carries out step S8 for the worker A₁, and subsequently, carries out step S8 for the worker A₂. In this case, in step S5 of the flow executed for the worker A₁, the processor 64 may determine YES when the time before the time point, when the work is estimated to be ended by the learning model LM_(2_A), by the predetermined time is reached.

On the other hand, in step S5 of the flow for the worker A₂, the processor may determine YES at the time when the learning model LM_(2_B) estimates that the work is ended. Thus, the processor 64 can carry out step S8 at different timings for the workers A1 and A2 in the order in which the works are ended, even if the timings of when the works of the workers A₁ and A₂ are ended are close to each other.

Alternatively, similarly as step S5 in the above-described robot system 10, the processor 64 of the robot system 80 can monitor whether the motion of the worker A indicated by the detection data DD_(m) matches the reference motion pattern, and determine that the n-th work is ended when the motion of the worker A matches the reference motion pattern. In this case, if the timing of when the works by the workers A₁ and A₂ are ended are close to each other, the processor 64 can determine which of the motions of the workers A₁ and A₂ first match the reference motion pattern.

For example, if the motion of the worker A₁ matches the reference motion pattern before the motion of the worker A₂, step S8 is carried out first for the worker A₁, and subsequently for the worker A₂. In this case, in step S5 of the flow carried out for the worker A₁, the processor 64 determines YES when determining that the motion of the worker A₁ matches the reference motion pattern, and executes step S8 for the worker A₁.

On the other hand, in step S5 of the flow for the worker A₂, the processor 64 determines YES after a predetermined time elapsed from the time point when the processor 64 determines that the motion of the worker A₂ matches the reference motion pattern, and carries out step S8 for the worker A₂. Whereby, the processor 64 can carry out step S8 at different timings for the workers A₁ and A₂ in the order in which the works is ended.

By the control method as described above, even if the timing of when the works by at least two of the workers A₁, A₂ and A₃ are ended are temporally close to each other, step S8 (article-feed operation) and step S9 (article-fetch operation) can be smoothly carried out for the workers A₁, A₂, and A₃, without interrupting the motions of the robot 12 or the workers A₁, A₂, and A₃.

In addition, since the articles can be efficiently fed by the robot 12, the operation rate of the robot 12 can be increased. As a result, it is not necessary to provide a plurality of robots to assist the works of the respective workers A₁, A₂, and A₃, and the single robot 12 can assist the works of the workers A₁, A₂, and A₃. Thus, the cost of the robot system 80 can be reduced.

Note that, in the robot system 80, the processor 64 may carry out, for any of the workers A₁, A₂, and A₃, the flow in FIG. 3 performed by the above-described robot system 10 (i.e., the flow not using the learning model LM in step S5). In this case, the processor 64 carries out the flow in FIG. 3 which does not use the learning model LM, and the flow in FIG. 3 which uses the learning model LM in parallel for the different workers. Additionally, in the robot system 80, the single detection device 14 may be configured to detect the motions of the workers A₁, A₂, and A₃.

In the above described embodiments, the robot 12 sets the n-th tool T_(n) to the first jig D₁ in step S8. However, the robot 12 may hand the n-th tool T_(n) directly to the worker A (or A₁, A₂, or A₃).

In this case, in step S8, the controller 16 or 62 (processor 64) transports the n-th tool T_(n) grasped by the robot 12 with the robot hand 26 to a predetermined handing position, as the article-feed operation. The handing position is defined as a position close to the worker A, where the n-th tool T_(n) is to be handed to the worker A. The position data of the handing position in the robot coordinate system C_(R) is pre-stored in the memory (66). The worker A (or A₁, A₂, or A₃) receives, by his/her hand H, the n-th tool T_(n) arranged at the handing position by the robot 12 in step S8.

In this case, the robot 12 may be provided with a force sensor configured to detect an external force F applied to the robot hand 26. If the worker A (or A₁, A₂, or A₃) receives the n-th tool T_(n) from the robot 12 by his/her hand H, the external force F applied to the robot hand 26 varies. The controller 16 or 62 (processor 64) may monitor the external force F detected by the force sensor, and determine that the worker A receives the n-th tool T_(n) when the external force F varies to exceed a predetermined threshold, and then proceed to step S9.

In the above described embodiments, in step S9, the robot 12 grasps and fetches the (n−1)-th tool T_(n−1), which has been used for the most-recently performed (n−1)-th work and set on the second jig D₂. However, the robot 12 may receive the (n−1)-th tool T_(n−1) directly from the worker A (or A₁, A₂, or A₃).

In this case, the robot 12 may be provided with a force sensor configured to detect the external force F applied to the robot hand 26. Then, in step S9, the controller 16 or 62 (processor 64) performs the article-fetch operation to arrange the hand-tip (TCP) of the robot hand 26 at the handing position along with opening the fingers 26 a of the robot hand 26. Then, the worker A (or A₁, A₂, or A₃) inserts the (n−1)-th tool between the fingers 26 a of the robot hand 26, and applies the external force F to the robot hand 26 through the (n−1)-th tool T_(n−1). The force sensor detects the external force F at this time.

The controller 16 or 62 (processor 64) closes the fingers 26 a of the robot hand 26 to grasp the (n−1)-th tool T_(n−1) when the external force F detected by the force sensor exceeds the predetermined threshold. In this way, the robot 12 can receive the (n−1)-th tool T_(n−1) directly from the worker A (or A₁, A₂, or A₃). Then, the controller 16 or 62 (processor 64) transports the received (n−1)-th tool T_(n−1) to the predetermined position on the storage stand E.

In the above-described the embodiments, the detection device 14 detects the motion of the worker A (or A₁, A₂, or A₃) on the basis of the image of the worker A (or A₁, A₂, or A₃), by optical motion capture. However, the detection device may detect the motion of the worker A (or A₁, A₂, or A₃) by a so-called inertial sensor notion capture. In this case, the detection device includes a plurality of acceleration sensors provided at respective locations on the body of the worker A (or A₁, A₂, or A₃), and detects the motion of the worker A (or A₁, A₂, or A₃) from output signals from the acceleration sensors.

If the learning model LM is learned by the machine learning apparatus 50 using a detection device including such acceleration sensors, the processor 64 (learning data acquisition section 52) may acquire, as the learning data set DS, the output signal from each acceleration sensor as detection data. Alternatively, the processor 64 (learning data acquisition section 52) may acquire, as the learning data set DS, detection data (image data) which indicates the motion of the worker A (or A₁, A₂, or A₃) and which is obtained from the output signal from each acceleration sensor. Additionally, the detection device may employ any type of motion capture technology, such as a mechanical or magnetic type.

In the above-described embodiments, the controller 16 (processor 64) functions as the end determination section 30 and determines whether the n-th work is ended based on the detection data DD of the detection device 14. However, the image processing processor provided in the detection device 14 may function as the end determination section 30 to determine whether the n-th work is ended on the basis of the detection data DD.

Additionally, in the above-described embodiments, the n-th work is defined as fastening the fasteners G to the fastening holes F₁ to F₅ in the order of the fastening holes F₁→F₂→F₃→F₄→F₅. However, the order in which fasteners G are to be fastened to the fastening holes F₁ to F₅ may be any order. Additionally, the number of fastening holes F₁ to F₅ may be any number.

Furthermore, the n-th work is not limited to the fastening work. For example, the n-th work may be welding (e.g., spot welding) by the worker A onto a first welding spot, a second welding spot, . . . , an n-th welding spot, using the n-th tool which is a welding torch. Alternatively, the n-th work may be painting by the worker A onto a first painting area, a second painting area, . . . , and an n-th painting area, sequentially, using the n-th tool which is a paint applicator. Alternatively, the n-th work may be soldering electronic components to a first mounting position, a second mounting position, . . . , and an n-th mounting position on a substrate, using the n-th tool which is a soldering gun, by the worker A.

Additionally, in the above-described embodiments, the robot 12 feeds and fetches the tool T to and from the worker, as an article for the work. However, as an article for the work, the robot 12 may feed and fetch a component (fasteners G such as bolts or electronic components such as IC chips) to be attached to a product. Additionally, the robot hand 26 is not limited to one configured to grasp the article with the fingers 26 a, but may include a suction section configured to suck the article. In addition, the robot 12 is not limited to the vertical articulated type, but may be any type of robot, such as a horizontal articulated robot or parallel link robot. Although the present disclosure has been described through the above embodiments, the above embodiments are not intended to limit the claimed invention. 

1. A robot system configured to assist a work by a worker, the robot system comprising: a robot; a detection device configured to detect a motion of the worker when the worker is performing a predetermined work; an end determination section configured to determine whether or not the work is ended, based on detection data of the detection device; and a robot controller configured to, when the end determination section determines that the work is ended, cause the robot to carry out: an article-feed operation to transport an article for the work to a predetermined position in order to feed the article to the worker; or an article-fetch operation to fetch the article which has been used for the work and transport it to a predetermined storage location.
 2. The robot system of claim 1, wherein the end determination section is configured to: monitor, from the detection data, whether or not a distance between the worker and a working location is equal to or smaller than a predetermined threshold; and determine that the work is ended when the distance is equal to or smaller than the threshold.
 3. The robot system of claim 1, wherein the end determination section is configured to: monitor whether or not the motion detected by the detection device matches a reference motion pattern predetermined as a reference motion of the worker when the worker performs the work; and determine that the work is ended when the motion matches the reference motion pattern.
 4. The robot system of claim 1, wherein the end determination section is configured to determine whether or net the work is ended, further based on a learning model representing a correlation between the motion and a stage of the work or a time needed for the work.
 5. The robot system of claim 1, wherein, after carrying out the article-feed operation, the robot controller causes the robot to carry out the article-fetch operation to fetch the article used for the most-recently performed work and transport it to the predetermined storage location.
 6. A method of controlling a robot configured to assist a work by a worker, the method comprising: detecting, by a detection device, a motion of the worker when the worker is performing a predetermined work; determining whether or not the work is ended, based on detection data of the detection device; and when determining that the work is ended, causing the robot to carry out: an article-feed operation to transport an article for the work to a predetermined position in order to feed the article to the worker; or an article-fetch operation to fetch the article which has been used for the work and transport it to a predetermined storage location.
 7. A machine learning apparatus configured to learn a timing of when a work by a worker is ended, the machine learning apparatus comprising: a learning data acquisition section configured to acquire, as a learning data set, detection data of a detection device configured to detect a motion of the worker when the worker is performing a predetermined work, and label information indicating a stage of the work or a time needed for the work; and a learning section configured to generate a learning model representing a correlation between the motion and the stage or the time, using the learning data set.
 8. A machine learning method of learning a timing of when a work by a worker is ended, the machine learning method comprising: acquiring, as a learning data set, detection data of a detection device configured to detect a motion of the worker when the worker is performing a predetermined work, and label information indicating a stage of the work or a time needed for the work; and generating a learning model representing a correlation between the motion and the stage or the time, using the learning data. 